package com.hospitalsystem.service;

import com.hospitalsystem.entity.*;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.text.ParseException;
import java.util.List;

/**
 * (Arrange)表服务接口
 *
 * @author makejava
 * @since 2024-12-28 19:24:18
 */
public interface ArrangeService {

    /**
     * 通过ID查询单条数据
     *
     * @param  arrangeId
     * @return 实例对象
     */
    Arrange queryById(String arrangeId);

    /**
     * 分页查询
     *
     * @param arrange 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    Page<Arrange> queryByPage(Arrange arrange, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param
     * @return 实例对象
     */
    Arrange insert(String pId, String arrangeTime, String department) throws ParseException;

    /**
     * 查询id是否存在
     *
     * @param arrangeId
     * @return 是否存在
     */
    boolean existId(String arrangeId);

    /**
     * 修改数据
     *
     * @param arrange 实例对象
     * @return 实例对象
     */
    Arrange update(Arrange arrange);

    /**
     * 通过主键删除数据
     *
     * @param  arrangeId
     * @return 是否成功
     */
    boolean deleteById(String arrangeId);

    /**
     * 修改是否完成就诊
     *
     * @param  idCard
     * @param dId
     * @return 是否成功
     */
    boolean updateIfFinish(String idCard,String dId);

    /**
     * 根据患者id查询所有挂号记录
     *
     * @param pId
     * @return 挂号记录List
     */
    List<Arrange> findArrangeByPId(String pId);

    ArrangeResponse findArrangeByPId2(String pId);

    Boolean callPatient(String dId, String pId);

    Boolean updateIfPay(String arrangeId);

    PatientRecord getPatientRecordByArrangeId(String arrangeId);

    CheckList getCheckListByName(String name);

    Drug getDrugByName(String name);

    MedicalRecord getMedicalRecordByPRId(String pRId);
}
